package com.sanji.sjmallutils;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Environment;
import android.telephony.TelephonyManager;
import android.widget.Toast;

import com.sanji.sjmallconfig.ConfigConts;

import java.io.File;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;

/**
 * Created by zsf on 16-12-8.
 */

public class Tools {
    /**
     * 通用的提示类
     */
    public static void toastTools(Context context, String msg) {
        Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
    }

    /**
     * 获取系统当前时间  add by yyyy-MM-dd HH:mm:ss
     */
    public static String getCurrentTime() {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String datetime = format.format(new Date());
        return datetime;
    }

    /**
     * 判断网络是否可用
     */
    public static boolean isNetwork(Context context) {
        ConnectivityManager mConnectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //检查网络连接，如果无网络可用，就不需要进行网络操作
        TelephonyManager mTelephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        NetworkInfo info = mConnectivity.getActiveNetworkInfo();
        if (info == null) {
            return false;
        }
        //判断网络连接类型，只有3G或者wifi里进行一些数据更新
        int netType = info.getType();
        int netSubtype = info.getSubtype();
        if (netType == ConnectivityManager.TYPE_WIFI) {
            return info.isConnected();
        } else if (netType == ConnectivityManager.TYPE_MOBILE && netSubtype == TelephonyManager.NETWORK_TYPE_UMTS && !mTelephony.isNetworkRoaming()) {
            return info.isConnected();
        } else {
            return info.isAvailable();
        }
    }


    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * 价格 * 数量
     *
     * @param price
     * @param count
     * @return
     */
    public static double multiply(double price, int count) {
        BigDecimal p = BigDecimal.valueOf(price);
        BigDecimal c = BigDecimal.valueOf(count);
        return p.multiply(c).doubleValue();
    }

    /**
     * 和计算
     *
     * @param d1
     * @param d2
     * @return
     */
    public static double add(double d1, double d2) {
        BigDecimal a = BigDecimal.valueOf(d1);
        BigDecimal b = BigDecimal.valueOf(d2);
        return a.add(b).doubleValue();
    }

    /**
     * 减法计算
     *
     * @param d1
     * @param d2
     * @return
     */
    public static double subtract(double d1, double d2) {
        BigDecimal a = BigDecimal.valueOf(d1);
        BigDecimal b = BigDecimal.valueOf(d2);
        return a.subtract(b).doubleValue();
    }


    /**
     * 拨打电话
     *
     * @param context
     * @param phone
     */
    public static void dialPhone(Context context, String phone) {
        Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phone));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }

    /**
     * 拼接字符串，以逗号隔开
     */
    public static String putTogetherStr(String s) {
        String str = "";
        for (int i = 0; i < s.length(); i++) {
            if (i == s.length() - 1) {
                str += s.substring(i, i + 1);
                break;
            } else {
                str += s.substring(i, i + 1);
                str += ",";
            }
        }
        return str;
    }

    /**
     * @return 以- 分开字符串
     */
    public static String[] separeteStr(String s) {
        String[] price = s.split("-");
        return price;
    }

    /**
     * 时间戳转换成时间
     */
    public static String paseToDate(Long time) {
        Date date = new Date(time);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(date);
    }

    /**
     * @return 正则匹配手机号
     */
    public static boolean isPhoneNumber(String phoneNumber) {
        String regExp = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|17[0135678]|(18[0-9]))\\d{8}$";
        return Pattern.matches(regExp, phoneNumber);
    }



}
